The IEEE has approved a new standard under IEEE 1394 for a high-performance serial bus cable environment that includes a network of logical nodes connected by point-to-point links called physical connections. The physical connections consist of a port on each of the nodes and a cable disposed therebetween. A node can have multiple ports, which allows a branching multi-hop interconnect. The limitations on this topology are set by the requirement for the fixed round-trip time required for the arbitration protocol. The default timing set after a bus reset is adequate for 16 cable hops, each of 4.5 meters for a total of 72 meters. The maximum number of nodes supported on a single bus is 63.
Whenever a node is added to or removed from the 1394 serial bus, a bus reset occurs and forces all nodes to a known state. After a bus reset, the tree identify (ID) process translates the general network topology into a tree, where one node is designated a root, and all the physical connections are labeled as either a parent, a child or as unconnected. The unconnected ports are labeled as "off" and do not participate any further. The tree must be acyclic, meaning no loops allowed; otherwise, the tree ID process win not be completed.
The 1394 cable environment supports multiple data rates of 98.304, 196.608, 393.216 megabits per second. The lowest speed is known as the base rate, and all ports that support a higher data rate must also support the lower data rate. Nodes capable of data rates greater than the base rate exchange speed information with its peers through its attach ports during the speed signaling phase of normal bus arbitration. If a peer node is incapable of receiving high-speed data, then data will not propagate down that path. Data will only be propagated down paths that support the higher data rate.
During data packet transmission, the source node sends a speed code, format and transaction codes, addresses of the source and destination nodes and data in a packet form. The destination field in this packet is utilized by each node's link layer to determine if it is the recipient of the transmitted data. The maximum speed at which a data packet can be transmitted depends upon the bus topology and the data transmission speed supported by the nodes on the bus. To determine the optimum speed at which a data packet may be sent, the maximum supported speeds of the transmitting and receiving nodes, as well as the maximum speeds of any nodes connected between these nodes, must be determined. The optimum speed for data transmission is equal to the highest speed which is supported by all the nodes, which are required to participate in the transmission of the data packet.
The IEEE 1394 bus has a defined topology which is referred to as acyclic topology in that there are no loops in the bus. The bus is comprised of a plurality of nodes which are interconnected by physical connections. This is referred to as the cable topology. There is also a backplane topology which allows a plurality of nodes to exist on a common backplane. However, all of the nodes must have some recognizable ID on the bus. In the IEEE 1394 standard, there is a defined sequence that is processed to add a new node to the system. This is due to the fact that, unlike an Ethernet.RTM. network card, the node in the IEEE 1394 bus does not have a unique physical ID due to a hardware setting. As such, the network nodes will configure themselves, determine the architecture of the system, i.e., the tree structure of the network, and then determine their ID on the network.
Whenever a new device is added to the serial bus, it must obtain a logical address on the bus. To do this, it initiates a bus reset operation, which is followed by a tree identification operation. After the tree structure is determined, then the system will initiate transmission of self ID packets from each of the nodes in a defined order. This defined order allows only one node at a time to generate self ID packets, with the other nodes receiving the self ID packets for storage therein. During the self ID process, each node will receive all of the self ID packets that are transmitted on the bus and store them in a buffer. After storage, they must evaluate the self ID packets. If, for some reason, there is some problem with the integrity of a received self ID packet from another node, the receiving node will then initiate a bus reset. The disadvantage to the present systems are that they require sufficient memory to store all of the self ID packets from all of the nodes during the self ID portion of a bus initialization operation prior to evaluation thereof. Once all of the self ID packets have been received and stored, they are evaluated from an integrity standpoint and then, if there is a problem with integrity, a bus reset is sent to all of the other nodes. This requires a significant amount of storage and software for processing.